package vg.services.graph_view_manager.interfaces.graph_view;

import java.util.Map;

/**
 * @author Timur Zolotuhin (e-mail: tzolotuhin@gmail.com)
 */
public interface IGraphSettings {
	public final static String 	DEF_STYLE_VERTEX_SPACING_LEFT = "vertex_spacing_left";
	public final static String 	DEF_STYLE_VERTEX_SPACING_TOP = "vertex_spacing_top";
	public final static String 	DEF_STYLE_VERTEX_SPACING_RIGHT = "vertex_spacing_right";
	public final static String 	DEF_STYLE_VERTEX_SPACING_BOTTOM = "vertex_spacing_bottom";
	
	public final static String 	DEF_STYLE_VERTEX_FONT_COLOR = "vertex_font_color";
	public final static String 	DEF_STYLE_VERTEX_FILL_COLOR = "vertex_fill_color";
	public final static String 	DEF_STYLE_VERTEX_SHAPE = "vertex_shape";
	public final static String 	DEF_STYLE_GRAPH_ELEMENTS_FONT = "graph_elements_font";
	public final static String 	DEF_STYLE_VERTEX_TEXT_ALIGN = "vertex_text_align";
	
	/**
	 * This method sets style for elements of graph.
	 * Adds action to queue and returns control without execution of method.
	 *  
	 * @param style - see constants DEF_STYLE_VERTEX_SPACING_LEFT, DEF_STYLE_VERTEX_SHAPE, i.e.
	 */
	public void setStyle(String style, Object value);
	
	/**
	 * Adds action to queue and returns control without execution of method.
	 */
	public void setStyle(Map<String, Object> stylesheet);
}
